how bitwise operators work